<template>
  <van-address-edit
    :area-list="areaList"
    show-set-default
    show-delete
    :address-info="address"
    :area-columns-placeholder="['请选择', '请选择', '请选择']"
    @save="save"
    @delete="del"
    
  />
</template>
  <script setup>
//引入地区数据
import { areaList } from "@vant/area-data";
const { proxy } = getCurrentInstance();

//获取收货地址id
let id = proxy.$route.query.id ? proxy.$route.query.id : 0;
let address = ref({});
const business = proxy.$business.value;

onBeforeMount(() => info());

//查询收获地址方法
const info = async () => {
  //发送请求
  var result = await proxy.$POST({
    url: "/address/info",
    params: {
      busid: business.id,
      id,
    },
  });

  if (result.code == 0) {
    proxy.$fail({
      message: result.msg,
      onClose: () => proxy.$router.go(-1),
    });

    return false;
  }

  var data = result.data;

  //修改地址的默认信息
  address.value = {
    name: data.consignee,
    tel: data.mobile,
    addressDetail: data.address,
    areaCode: data.district || data.city || data.province,
    isDefault: data.status == "1" ? true : false,
  };
};

//更新
const save = async (values) => {
  //组装数据
  var params = {
    busid: business.id,
    id: id,
    consignee: values.name,
    address: values.addressDetail,
    mobile: values.tel,
    status: values.isDefault ? "1" : "0",
    code: values.areaCode,
  };

  //发送请求
  var result = await proxy.$POST({
    url: "/address/edit",
    params,
  });

  if (result.code == 0) {
    proxy.$fail(result.msg);
    return false;
  } else {
    proxy.$success({
      message: result.msg,
      duration: 1000,
      onClose: () => proxy.$router.go(-1),
    });
  }
};

//删除
const del = () => {
  proxy
    .$confirm({
      title: "删除提醒",
      message: "是否确认删除该收获地址",
    })
    .then(async () => {
      var result = await proxy.$POST({
        url: "/address/del",
        params: {
          busid: business.id,
          id: id,
        },
      });

      if (result.code == 0) {
        proxy.$fail(result.msg);
        return false;
      }

      //返回上一个界面
      proxy.$success({
        message: result.msg,
        duration: 1000,
        onClose: () => proxy.$router.go(-1),
      });
    })
    .catch(() => {});
};
</script>